A problem associated with the digital processing of color pictures is that there is only a finite number of bits available to digitally represent the actual colors in the picture. Choosing an RGB representation of 8 bits for each of R, G and B, provides a three-dimensional uniform grid of 256×256×256 colors. The true color of a pixel is to be mapped onto this discrete set, e.g., according to a nearest neighbor mapping. This quantization introduces minor deviations, but the 24-bit representation requires massive processing capabilities. It gets more difficult for graphics display hardware that does not have the 24-bit processing capability. Typical graphics display hardware supports only 8 bits of storage per pixel. Accordingly, the set of 256×256×256 colors is to be mapped onto the substantially smaller color subset of 256 colors, which introduces yet another error. The 8 bits are now associated with an index between 0 and 255. So, instead of using 3 bytes per pixel (256×256×256), only a single byte per pixel is sent from the CPU to the graphics hardware. In order to assure that it displays correctly on an RGB monitor, the graphics hardware also stores a Color Look Up Table (CLUT) that maps 256 indices back to combinations of R, G and B intensities. The calculation of such a CLUT and the mapping of the set of 256×256×256 original colors to the 256 color subset can be very time consuming.
It is known to map an image onto a reduced set by choosing the 256 most prominent colors present in the image. Each of these colors is defined by a triplet, (R, G, B) for example, of integers between 0 and 255, which determines the coordinates of the color in the original color cube. For each color, the number of pixels having that color is determined and the colors having the 256 highest numbers are chosen to represent the image. The reduced set is represented by a collection of indices to a CLUT. This approach has some disadvantages. The transformation of the original frame to a frame represented in this reduced color subset requires an elaborate closest-color search. Furthermore, the transformed frame consists of an array of indices for the colors. These indices are merely labels and the array relates to the original color cube only indirectly. Therefore, video operations are, in general, not possible in the color domain represented as a indices. In addition, this method is highly time consuming. For movies/video, i.e., a sequence of rapidly succeeding images the method requires a new CLUT for each movie frame. It often takes longer to install the new CLUT than to display the new frame in the time available (e.g., 33 msec for NTSC video). Even if the CPU is capable of timely sending a new CLUT to the graphics hardware, this method may cause color flashing. That is, pixels that in a sequence of original frames conserve their color, may now appear to have fluctuating colors.
Another manner to map the image onto a reduced color set is to use a color cube similar to, but smaller than, the original cube of 256×256×256 colors. For example, eight red, eight green and four blue intensities are chosen in an 8×8×4 sub-space to create 256 colors. The intensities are fixed so that they cover the whole range of each color dimension by spacing them equidistantly. In the above example, the red and green intensities would each be (16, 48, 80, 112, 114, 176, 208, 240) and the blue intensities (32, 96, 160, 224). As known, the human eye is less sensitive to variations in the color blue than to those in green or red. The advantage of this method is that the conversion from the original color cube to the reduced one is simple. The original bytes are simply truncated. Furthermore, processing in the reduced domain is possible using an appropriate indexing scheme. In above example, the first three bits of an 8-bit index typically represents the red intensities, the second triplet of bits the green intensities, and the last two bits the blue intensities. Index 001 100 11 in the transformed domain corresponds then to (48, 144, 224) in the original domain. The disadvantage of the use of this color cube method is that visual quality of the picture deteriorates considerably due to the coarse quantization. Especially, subtle colors such as pastel tones and facial tints are hard to represent using this scheme, even if dithering techniques are used to spread the errors.